package com.ruoyi.game.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.game.domain.GameSet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.game.mapper.GameSetMapper;
import com.ruoyi.game.service.IGameSetService;

/**
 * 对局(一局)Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-04-18
 */
@Service
public class GameSetServiceImpl implements IGameSetService 
{
    @Autowired
    private GameSetMapper gameSetMapper;

    /**
     * 查询对局(一局)
     * 
     * @param id 对局(一局)主键
     * @return 对局(一局)
     */
    @Override
    public GameSet selectGameSetById(Long id)
    {
        return gameSetMapper.selectGameSetById(id);
    }

    /**
     * 查询对局(一局)列表
     * 
     * @param gameSet 对局(一局)
     * @return 对局(一局)
     */
    @Override
    public List<GameSet> selectGameSetList(GameSet gameSet)
    {
        return gameSetMapper.selectGameSetList(gameSet);
    }

    /**
     * 新增对局(一局)
     * 
     * @param gameSet 对局(一局)
     * @return 结果
     */
    @Override
    public int insertGameSet(GameSet gameSet)
    {
        gameSet.setCreateTime(DateUtils.getNowDate());
        return gameSetMapper.insertGameSet(gameSet);
    }

    /**
     * 修改对局(一局)
     * 
     * @param gameSet 对局(一局)
     * @return 结果
     */
    @Override
    public int updateGameSet(GameSet gameSet)
    {
        gameSet.setUpdateTime(DateUtils.getNowDate());
        return gameSetMapper.updateGameSet(gameSet);
    }

    /**
     * 批量删除对局(一局)
     * 
     * @param ids 需要删除的对局(一局)主键
     * @return 结果
     */
    @Override
    public int deleteGameSetByIds(Long[] ids)
    {
        return gameSetMapper.deleteGameSetByIds(ids);
    }

    /**
     * 删除对局(一局)信息
     * 
     * @param id 对局(一局)主键
     * @return 结果
     */
    @Override
    public int deleteGameSetById(Long id)
    {
        return gameSetMapper.deleteGameSetById(id);
    }

    public long getNextSetIndex(Long roomId) {
        Integer maxIndex = gameSetMapper.selectMaxSetIndex(roomId);
        if (maxIndex == null) {
            return 1; // 如果该房间没有任何记录，默认从1开始
        }
        return maxIndex + 1;
    }

    @Override
    public void updateGameSetResult(GameSet gameSet) {
        gameSetMapper.updateGameSetResult(gameSet);
    }
}
